//Source file: D:\\test\\com\\ce\\pms\\house\\model\\GoOutDomain.java

package com.ce.pms.house.model;

import java.util.Calendar;
import java.util.Date;
import java.util.Set;

import javax.persistence.*;

import com.ce.pms.common.model.SysInfo;
import com.ce.pms.common.model.SysrefcodeDO;
import com.sitechasia.webx.core.model.IDomainObject;




/**
 * 实体名称:退伙登记
 * 关联表:HM_GO_OUT
 */
@Entity
@Table(name="HM_GO_OUT")
public class GoOutDomain implements IDomainObject
{
   @Id @GeneratedValue @Column(name = "GO_OUT_ID")
   private Long keyword;

   /**
    * 退伙房屋
    * 检索策略:lazy=true
    */
   @ManyToOne(cascade = {},fetch = FetchType.LAZY)
   @JoinColumn(name="HOUSE_ID",nullable = false)
   private HouseDomain house;

   /**
    * 相关业主
    * 备注:逗号隔开
    */
   @Column(name="CLIENTS",length=100)
   private String clients;

   /**
    * 退伙日期
    */
   @Column(name="OUT_DATE",nullable=false)
   @Temporal(TemporalType.DATE)
   private Date outDate;

   /**
    * 退伙流程阶段
    */
   @ManyToOne(cascade = {})
   @JoinColumn(name="SYS_REF_ID")
   private SysrefcodeDO goOutStatus;

   /**
    * 是否读表
    */
   @Column(name = "READMETER",length=1)
   private String readmeter;

   /**
	 * 水表抄表
	 * 检索策略:lazy=false
	 * 级联配置:cascade=all-delete-orphan
	 */
	@OneToOne(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
	@JoinColumn(name="COPY_METER_DATA_ID1")
	private CopyMeterData copyMeterData1;

	/**
	 * 电表抄表
	 * 检索策略:lazy=false
	 * 级联配置:cascade=all-delete-orphan
	 */
	@OneToOne(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
	@JoinColumn(name="COPY_METER_DATA_ID2")
	private CopyMeterData copyMeterData2;

	/**
	 * 气表抄表
	 * 检索策略:lazy=false
	 * 级联配置:cascade=all-delete-orphan
	 */
	@OneToOne(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
	@JoinColumn(name="COPY_METER_DATA_ID3")
	private CopyMeterData copyMeterData3;


	/**
	 * 抄表异常
	 * 检索策略:lazy=true
	 */
	@OneToOne(cascade={},fetch=FetchType.LAZY)
	@JoinColumn(name="REASON_DEF_ID1")
	private ReasonDefDomain reasonDef1;

   /**
    * 抄表异常描述
    */
   @Column(name = "COPY_METER_REASON_DESC",length=500)
   private String copyMeterReasonDesc;

   /**
    * 抄表日期
    */
   @Column(name="COPY_METER_DATE")
   @Temporal(TemporalType.TIMESTAMP)
   private Date copyMeterDate;
   /**
    * 是否验房
    */
   @Column(name = "CHECKHOUSE", length = 1)
   private String checkHouse;

   /**
	 * 验房异常ID
	 * 检索策略:lazy=true
	 */
	@OneToOne(cascade={},fetch=FetchType.LAZY)
	@JoinColumn(name="REASON_DEF_ID2")
	private ReasonDefDomain reasonDef2;

   /**
    * 验房异常
    */
   @Column(name = "CHECK_REASON_DESC",length=500)
   private String checkReasonDesc;

   /**
    * 验房人
    */
   @Column(name="CHECKER",length=36)
   private String checker;

   /**
    * 验房时间
    */
   @Column(name = "CHECK_DATE")
   @Temporal(TemporalType.TIMESTAMP)
   private Date checkDate;

   /**
    * 验房描述
    */
   @Column(name = "HOUSE_DESC",length=500)
   private String houseDesc;

   /**
    * 是否移交物品
    */
   @Column(name="HANDOVERGOODS",length=1)
   private String handoverGoods;

   /**
	 * 移交物品
	 */
	@OneToMany
	@JoinTable(
			name="HM_GO_OUT_R_GOODS_RECORD",
			joinColumns={@JoinColumn(name="GO_OUT_ID")},
			inverseJoinColumns={@JoinColumn(name="GOODS_RECORD_ID")})
	private Set<GoodsRecordDomain> goods;

	/**
	 * 移交物品异常
	 * 检索策略:lazy=true
	 */
	@OneToOne(cascade={},fetch=FetchType.LAZY)
	@JoinColumn(name="REASON_DEF_ID3")
	private ReasonDefDomain reasonDef3;

   /**
    * 移交物品异常描述
    */
   @Column(name = "HANDOVER_REASON_DESC",length=500)
   private String handoverReasonDesc;

   /**
    * 移交物品日期
    */
   @Column(name="HANDOVER_DATE")
   @Temporal(TemporalType.TIMESTAMP)
   private Calendar handoverDate;

   /**
    * 系统信息
    */
   @Embedded
   private SysInfo sysInfo;

   /**
    * @roseuid 485B1037037A
    */
   public GoOutDomain()
   {

   }


   /**
    *
    * @param house 退伙房屋
    * @param outDate 退伙日期
    * @param copyMeterData1 水表抄表
    * @param copyMeterData2 电表抄表
    * @param copyMeterDate  抄表日期
    * @param checker 验房人员
    * @param checkDate 验房日期
    * @param houseDesc 验房情况
    * @param sysInfo 系统信息
    */
	public GoOutDomain(HouseDomain house, Date outDate, CopyMeterData copyMeterData1, CopyMeterData copyMeterData2, Date copyMeterDate, String checker, Date checkDate, String houseDesc, SysInfo sysInfo) {
		super();
		this.house = house;
		this.outDate = outDate;
		this.copyMeterData1 = copyMeterData1;
		this.copyMeterData2 = copyMeterData2;
		this.copyMeterDate = copyMeterDate;
		this.checker = checker;
		this.checkDate = checkDate;
		this.houseDesc = houseDesc;
		this.sysInfo = sysInfo;
	}




/**
 * @return the checker
 */
public String getChecker() {
	return checker;
}


/**
 * @param checker the checker to set
 */
public void setChecker(String checker) {
	this.checker = checker;
}


/**
 * @return the checkHouse
 */
public String getCheckHouse() {
	return checkHouse;
}


/**
 * @param checkHouse the checkHouse to set
 */
public void setCheckHouse(String checkHouse) {
	this.checkHouse = checkHouse;
}


/**
 * @return the checkReasonDesc
 */
public String getCheckReasonDesc() {
	return checkReasonDesc;
}


/**
 * @param checkReasonDesc the checkReasonDesc to set
 */
public void setCheckReasonDesc(String checkReasonDesc) {
	this.checkReasonDesc = checkReasonDesc;
}


/**
 * @return the clients
 */
public String getClients() {
	return clients;
}


/**
 * @param clients the clients to set
 */
public void setClients(String clients) {
	this.clients = clients;
}


/**
 * @return the copyMeterData1
 */
public CopyMeterData getCopyMeterData1() {
	return copyMeterData1;
}


/**
 * @param copyMeterData1 the copyMeterData1 to set
 */
public void setCopyMeterData1(CopyMeterData copyMeterData1) {
	this.copyMeterData1 = copyMeterData1;
}


/**
 * @return the copyMeterData2
 */
public CopyMeterData getCopyMeterData2() {
	return copyMeterData2;
}


/**
 * @param copyMeterData2 the copyMeterData2 to set
 */
public void setCopyMeterData2(CopyMeterData copyMeterData2) {
	this.copyMeterData2 = copyMeterData2;
}


/**
 * @return the copyMeterData3
 */
public CopyMeterData getCopyMeterData3() {
	return copyMeterData3;
}


/**
 * @param copyMeterData3 the copyMeterData3 to set
 */
public void setCopyMeterData3(CopyMeterData copyMeterData3) {
	this.copyMeterData3 = copyMeterData3;
}


/**
 * @return the copyMeterDate
 */
public Date getCopyMeterDate() {
	return copyMeterDate;
}


/**
 * @param copyMeterDate the copyMeterDate to set
 */
public void setCopyMeterDate(Date copyMeterDate) {
	this.copyMeterDate = copyMeterDate;
}


/**
 * @return the copyMeterReasonDesc
 */
public String getCopyMeterReasonDesc() {
	return copyMeterReasonDesc;
}


/**
 * @param copyMeterReasonDesc the copyMeterReasonDesc to set
 */
public void setCopyMeterReasonDesc(String copyMeterReasonDesc) {
	this.copyMeterReasonDesc = copyMeterReasonDesc;
}


/**
 * @return the goods
 */
public Set<GoodsRecordDomain> getGoods() {
	return goods;
}


/**
 * @param goods the goods to set
 */
public void setGoods(Set<GoodsRecordDomain> goods) {
	this.goods = goods;
}


/**
 * @return the goOutStatus
 */
public SysrefcodeDO getGoOutStatus() {
	return goOutStatus;
}


/**
 * @param goOutStatus the goOutStatus to set
 */
public void setGoOutStatus(SysrefcodeDO goOutStatus) {
	this.goOutStatus = goOutStatus;
}


/**
 * @return the handoverDate
 */
public Calendar getHandoverDate() {
	return handoverDate;
}


/**
 * @param handoverDate the handoverDate to set
 */
public void setHandoverDate(Calendar handoverDate) {
	this.handoverDate = handoverDate;
}


/**
 * @return the handoverGoods
 */
public String getHandoverGoods() {
	return handoverGoods;
}


/**
 * @param handoverGoods the handoverGoods to set
 */
public void setHandoverGoods(String handoverGoods) {
	this.handoverGoods = handoverGoods;
}


/**
 * @return the handoverReasonDesc
 */
public String getHandoverReasonDesc() {
	return handoverReasonDesc;
}


/**
 * @param handoverReasonDesc the handoverReasonDesc to set
 */
public void setHandoverReasonDesc(String handoverReasonDesc) {
	this.handoverReasonDesc = handoverReasonDesc;
}


/**
 * @return the house
 */
public HouseDomain getHouse() {
	return house;
}


/**
 * @param house the house to set
 */
public void setHouse(HouseDomain house) {
	this.house = house;
}


/**
 * @return the houseDesc
 */
public String getHouseDesc() {
	return houseDesc;
}


/**
 * @param houseDesc the houseDesc to set
 */
public void setHouseDesc(String houseDesc) {
	this.houseDesc = houseDesc;
}


/**
 * @return the keyword
 */
public Long getKeyword() {
	return keyword;
}


/**
 * @param keyword the keyword to set
 */
public void setKeyword(Long keyword) {
	this.keyword = keyword;
}


/**
 * @return the outDate
 */
public Date getOutDate() {
	return outDate;
}


/**
 * @param outDate the outDate to set
 */
public void setOutDate(Date outDate) {
	this.outDate = outDate;
}


/**
 * @return the readmeter
 */
public String getReadmeter() {
	return readmeter;
}


/**
 * @param readmeter the readmeter to set
 */
public void setReadmeter(String readmeter) {
	this.readmeter = readmeter;
}


/**
 * @return the reasonDef1
 */
public ReasonDefDomain getReasonDef1() {
	return reasonDef1;
}


/**
 * @param reasonDef1 the reasonDef1 to set
 */
public void setReasonDef1(ReasonDefDomain reasonDef1) {
	this.reasonDef1 = reasonDef1;
}


/**
 * @return the reasonDef2
 */
public ReasonDefDomain getReasonDef2() {
	return reasonDef2;
}


/**
 * @param reasonDef2 the reasonDef2 to set
 */
public void setReasonDef2(ReasonDefDomain reasonDef2) {
	this.reasonDef2 = reasonDef2;
}


/**
 * @return the reasonDef3
 */
public ReasonDefDomain getReasonDef3() {
	return reasonDef3;
}


/**
 * @param reasonDef3 the reasonDef3 to set
 */
public void setReasonDef3(ReasonDefDomain reasonDef3) {
	this.reasonDef3 = reasonDef3;
}


/**
 * @return the sysInfo
 */
public SysInfo getSysInfo() {
	return sysInfo;
}


/**
 * @param sysInfo the sysInfo to set
 */
public void setSysInfo(SysInfo sysInfo) {
	this.sysInfo = sysInfo;
}


/**
 * @return the checkDate
 */
public Date getCheckDate() {
	return checkDate;
}


/**
 * @param checkDate the checkDate to set
 */
public void setCheckDate(Date checkDate) {
	this.checkDate = checkDate;
}



}
